@echo off
REM 测试API的Windows批处理脚本
REM 使用方法: test-api.bat

REM 设置基础URL
set BASE_URL=http://localhost:8080

echo ===== Spring Boot + MariaDB API 测试脚本 =====
echo.

REM 模拟登录获取令牌
REM 注意：这里假设有一个/api/auth/signin端点用于获取令牌
REM 实际使用时请根据项目的认证机制调整
echo 1. 模拟管理员登录获取令牌
echo 注意：Windows批处理脚本无法像bash那样提取令牌，请手动复制令牌
echo.

echo 管理员登录请求:
echo curl -X POST "%BASE_URL%/api/auth/signin" -H "Content-Type: application/json" -d "{\"username\":\"admin\",\"password\":\"admin123\"}"
echo.
curl -X POST "%BASE_URL%/api/auth/signin" -H "Content-Type: application/json" -d "{\"username\":\"admin\",\"password\":\"admin123\"}"
echo.

echo 请从上面的响应中复制管理员令牌并输入:
set /p ADMIN_TOKEN=管理员令牌:

if "%ADMIN_TOKEN%"=="" (
  echo 未提供管理员令牌，将使用模拟令牌...
  set ADMIN_TOKEN=admin-mock-token
)

echo.
echo 2. 模拟普通用户登录获取令牌
echo.

echo 用户登录请求:
echo curl -X POST "%BASE_URL%/api/auth/signin" -H "Content-Type: application/json" -d "{\"username\":\"user\",\"password\":\"user123\"}"
echo.
curl -X POST "%BASE_URL%/api/auth/signin" -H "Content-Type: application/json" -d "{\"username\":\"user\",\"password\":\"user123\"}"
echo.

echo 请从上面的响应中复制用户令牌并输入:
set /p USER_TOKEN=用户令牌:

if "%USER_TOKEN%"=="" (
  echo 未提供用户令牌，将使用模拟令牌...
  set USER_TOKEN=user-mock-token
)

echo.
echo ===== 测试API端点 =====

REM 测试获取所有用户 (需要ADMIN角色)
echo.
echo 3. 测试获取所有用户 (ADMIN角色)
echo curl -X GET "%BASE_URL%/api/users" -H "Authorization: Bearer %ADMIN_TOKEN%"
curl -X GET "%BASE_URL%/api/users" -H "Authorization: Bearer %ADMIN_TOKEN%"
echo.

REM 测试获取所有用户 (使用USER角色 - 应该被拒绝)
echo.
echo 4. 测试获取所有用户 (USER角色 - 应该被拒绝)
echo curl -X GET "%BASE_URL%/api/users" -H "Authorization: Bearer %USER_TOKEN%"
curl -X GET "%BASE_URL%/api/users" -H "Authorization: Bearer %USER_TOKEN%"
echo.

REM 测试根据ID获取用户 (ADMIN角色)
echo.
echo 5. 测试根据ID获取用户 (ADMIN角色)
echo curl -X GET "%BASE_URL%/api/users/1" -H "Authorization: Bearer %ADMIN_TOKEN%"
curl -X GET "%BASE_URL%/api/users/1" -H "Authorization: Bearer %ADMIN_TOKEN%"
echo.

REM 测试根据ID获取用户 (USER角色)
echo.
echo 6. 测试根据ID获取用户 (USER角色)
echo curl -X GET "%BASE_URL%/api/users/1" -H "Authorization: Bearer %USER_TOKEN%"
curl -X GET "%BASE_URL%/api/users/1" -H "Authorization: Bearer %USER_TOKEN%"
echo.

REM 测试获取不存在的用户
echo.
echo 7. 测试获取不存在的用户
echo curl -X GET "%BASE_URL%/api/users/999" -H "Authorization: Bearer %ADMIN_TOKEN%"
curl -X GET "%BASE_URL%/api/users/999" -H "Authorization: Bearer %ADMIN_TOKEN%"
echo.

REM 测试获取相似用户 (ADMIN角色)
echo.
echo 8. 测试获取相似用户 (ADMIN角色)
echo curl -X GET "%BASE_URL%/api/users/similar/1?count=3" -H "Authorization: Bearer %ADMIN_TOKEN%"
curl -X GET "%BASE_URL%/api/users/similar/1?count=3" -H "Authorization: Bearer %ADMIN_TOKEN%"
echo.

REM 测试获取相似用户 (USER角色)
echo.
echo 9. 测试获取相似用户 (USER角色)
echo curl -X GET "%BASE_URL%/api/users/similar/1" -H "Authorization: Bearer %USER_TOKEN%"
curl -X GET "%BASE_URL%/api/users/similar/1" -H "Authorization: Bearer %USER_TOKEN%"
echo.

REM 测试无认证访问
echo.
echo 10. 测试无认证访问
echo curl -X GET "%BASE_URL%/api/users"
curl -X GET "%BASE_URL%/api/users"
echo.

echo.
echo ===== 测试完成 =====
echo 提示: 如果看到JSON输出，表示请求成功。
echo 提示: 如果看到错误消息或空输出，请检查服务器日志以获取更多信息。

pause
